import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class VueConsultPeriodique extends Vue {

	private static final long serialVersionUID = 1L;
	
	private JTextField textFieldIssn;		//issn du periodique
	private JTextField textFieldTitrePe;	//nom du periodique
	private JTextField textFieldNb;			//nombre de parution du periodique
	private JTextArea textAreaParution;		//liste des parutions du periodique

	private JButton buttonRech_1;
	private JButton buttonAnnRech;
	
	public VueConsultPeriodique(Controleur controleur) {
		super(controleur);
		setTitle("Consulter un periodique");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		setBounds(100, 100, 540, 365);
		JPanel contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblNewLabel = new JLabel("ISSN");
		lblNewLabel.setBounds(54, 37, 61, 15);
		contentPane.add(lblNewLabel);
		
		textFieldIssn = new JTextField();
		textFieldIssn.setBounds(110, 35, 114, 19);
		contentPane.add(textFieldIssn);
		textFieldIssn.setColumns(10);

//Rechercher
		buttonRech_1 = new JButton("Rechercher");
		buttonRech_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String issn = textFieldIssn.getText();
				getControleur().rechPeriodique(issn);
			}
		});
		buttonRech_1.setBounds(283, 33, 107, 25);
		contentPane.add(buttonRech_1);

//Annuler
		buttonAnnRech = new JButton("Annuler");
		buttonAnnRech.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				setEtat(initiale);
			}
		});
		buttonAnnRech.setBounds(413, 32, 107, 25);
		contentPane.add(buttonAnnRech);
		
		JLabel lblTitre = new JLabel("Titre");
		lblTitre.setBounds(73, 106, 61, 15);
		contentPane.add(lblTitre);
		
		textFieldTitrePe = new JTextField();
		textFieldTitrePe.setEditable(false);
		textFieldTitrePe.setBounds(129, 104, 114, 19);
		contentPane.add(textFieldTitrePe);
		textFieldTitrePe.setColumns(10);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(89, 81, 358, 2);
		contentPane.add(separator);
		
		JLabel lblNombreDeParutions = new JLabel("Parutions");
		lblNombreDeParutions.setBounds(54, 149, 61, 15);
		contentPane.add(lblNombreDeParutions);
		
		textFieldNb = new JTextField();
		textFieldNb.setEditable(false);
		textFieldNb.setColumns(10);
		textFieldNb.setBounds(129, 147, 49, 19);
		contentPane.add(textFieldNb);

//fermer
		JButton buttonFermer_1 = new JButton("Fermer");
		buttonFermer_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				getControleur().fermerVue(VueConsultPeriodique.this);
			}
		});
		buttonFermer_1.setBounds(219, 301, 107, 25);
		contentPane.add(buttonFermer_1);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(73, 176, 396, 93);
		contentPane.add(scrollPane);
		
		textAreaParution = new JTextArea();
		scrollPane.setViewportView(textAreaParution);
		textAreaParution.setEditable(false);
	}
	
	/*alimente la liste des parutions*/
	public void alimente(Periodique pe) {
		textFieldTitrePe.setText(pe.getNom());
		textFieldNb.setText(String.valueOf(pe.getNbParutions()));
		textAreaParution.setText("");
		int i = 1;
		for (Parution parution : pe.getParutions()) {
			  textAreaParution.append( i + "    " + String.valueOf(parution.getNumero()) + "\n");
			  i++;
		}
	}
	
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {
			textFieldIssn.setText("");
			textFieldIssn.setEditable(true);
			buttonAnnRech.setEnabled(false);
			buttonRech_1.setEnabled(true);
			
			textFieldTitrePe.setText("");
			textFieldNb.setText("");
			textAreaParution.setText("");
			break;
			}
		case finale: {
			textFieldIssn.setEditable(false);
			buttonRech_1.setEnabled(false);
			buttonAnnRech.setEnabled(true);
			break;
			}
		}
	}
}